Contemporary, flash memory-based Solid State Drives/Disks (SSDs) have grown enormously both in data storage capacity and popularity as a design feature of many electronic devices (“hosts”). Indeed, NAND flash-based storage devices (“NAND devices”) are current available in multiple Terabytes (TBs) and the future promises greater data storage capacity and higher performance.
Current market trends indicate that PCIe based NAND devices are in great demand in enterprise as well as data center applications. In certain enterprise applications, storage domain multi-path and virtualization are two important features of storage devices. That is, a storage device should be useable (or accessible) by multiple host entities capable of using the storage device for different purposes.
The term Quality of Service (“QoS”) is used to characterize the operating performance of a storage device in relation to one or more hosts. For example, QoS may be expressed as a minimum time within which the storage device responds to a request received from a host. For multi-function storage devices being accessed by multiple hosts, this minimum time should ideally be fixed and consistent across the range of hosts, regardless of the type of requests being issued by the respective hosts.
In this context, each host may be understood as creating a virtual environment within which the storage device is accessed. This virtual environment may define, sequence and execute a number of “tasks” respectively corresponding to requests received from one or more hosts. Certain hosts (e.g., hosts running one or more multimedia applications) may generate a large number of data I/O operations, while other hosts may run Online Transaction Processing (OLTP) or even a full blown database. If the storage device is unaware of the number and type of tasks being generated by each host, the QoS relative to different hosts may vary dynamically, dramatically, and in an unpredictable manner. Under such conditions, the storage device manufacturer will be unable to ensure a fixed and acceptable QoS for each host request. However, a predictable and reliable QoS is very important to the proper execution of OLTP and similar operations.
Accordingly, there is need to provide methods and systems capable of providing a fixed QoS across a range of hosts accessing a storage device using protocols and approaches specified by the PCIe.